1. Field of the Invention
The present invention relates generally to encrypting data for rendering tamper resistance software such that the encrypted data is intolerant of faults, thereby complicating hacking the software.
2. Description of the Related Art
The field of tamper resistant software is rapidly growing. Tamper resistant software is protected by encrypting the software, with the software (or the necessary parts) being decrypted only when the software (or parts) is required to perform a desired secret function.
In considering the ways in which tamper resistant software can be encrypted, the present invention recognizes that in most cryptographic applications, it is desirable that the cipher used to encrypt data is fault tolerant, so that, for example, a transmission error that might destroy part of the encrypted message will not destroy the remainder of the message. The present invention further recognizes that in the context of tamper resistant software, however, fault tolerance can be disastrous. This is because, as understood herein, fault tolerance enables a hacker to arbitrarily change one of the blocks in the encrypted software, hoping to cause a fatal, immediate system error so that the program crashes. A debugger will then be invoked to handle the crash. When the debugger is invoked on the crashed program, most of the program, because of fault tolerance, will remain unaffected by the meddling, and can be available in the clear for the hacker to discover. The present invention understands that such an attack would not require an unduly large number of meddlings before the desired crash and subsequent exposure of the software occurs.
The present invention, in recognizing the above-discussed problem, offers the solution or solutions herein.